package br.ufrj.dcc.comp2.musica.vista;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

import br.ufrj.dcc.comp2.musica.controle.ControleCardLayout;
import br.ufrj.dcc.comp2.musica.listeners.ListenerMenuAluno;

public class PainelMenuAluno extends JPanel {

	private JButton botaoGerenciarInscricao ;
	private JButton botaoDadosPessoais ;
	private JButton botaoEmitirRelatorios;
	private JLabel labelGerenciarInscricao;
	private JLabel labelDadosPessoais;
	private JLabel labelEmitirRelatorios;
	private GridBagLayout gridBagLayout;
	private GridBagConstraints gridBagConstraints;
	private Insets espacamentoEntreComponentes;
	private JPanel painelEsquerda;
	private JPanel painelDireita;
	private ListenerMenuAluno ouvinteAluno;
	private ControleCardLayout controleCardLayout;
	private ImageIcon iconeDadosPessoais;
	private ImageIcon iconeGerenciarInscricoes;
	private ImageIcon iconeEmitirRelatorio;
	private ImageIcon fotoAluno;
	
	public ControleCardLayout getControleCardLayout() {
		return controleCardLayout;
	}

	public PainelMenuAluno(ControleCardLayout controleCardLayout) {
		
		this.controleCardLayout = controleCardLayout;
		ouvinteAluno = new ListenerMenuAluno(this);
		
		
		iconeGerenciarInscricoes = new ImageIcon("gerenciarInscricao.jpg");
		labelGerenciarInscricao = new JLabel("Gerenciar Inscricao");
		botaoGerenciarInscricao = new JButton(iconeGerenciarInscricoes);
		botaoGerenciarInscricao.addActionListener(ouvinteAluno);
		
		iconeDadosPessoais = new ImageIcon("dadosPessoais.jpg");
		labelDadosPessoais = new JLabel("Dados Pessoais");
		botaoDadosPessoais = new JButton(iconeDadosPessoais);
		botaoDadosPessoais.addActionListener(ouvinteAluno);
		
		iconeEmitirRelatorio  = new ImageIcon("emitirRelatorio.jpg");
		labelEmitirRelatorios = new JLabel("Emitir Relatorios");
		botaoEmitirRelatorios = new JButton(iconeEmitirRelatorio);
		botaoEmitirRelatorios.addActionListener(ouvinteAluno);
		
		gridBagLayout = new GridBagLayout();
		gridBagConstraints = new GridBagConstraints();
		espacamentoEntreComponentes = new Insets(15, 15, 15, 0);
		painelEsquerda = new JPanel();
		painelDireita = new JPanel();
		
		this.setLayout(new BorderLayout());
		iniciaPainelEsquerda();
		fotoAluno = new ImageIcon("foto.jpg");
		
		painelDireita.setBorder(BorderFactory.createTitledBorder("Foto"));
		painelDireita.add(new JLabel(fotoAluno));

		this.add(painelDireita, BorderLayout.EAST);
		this.add(painelEsquerda, BorderLayout.CENTER);
	}

	public void adicionar(Component c, int x, int y) {
		gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
		gridBagConstraints.gridx = x;
		gridBagConstraints.gridy = y;
		gridBagConstraints.ipady = 3;
		gridBagConstraints.insets = espacamentoEntreComponentes;
		painelEsquerda.add(c, gridBagConstraints);
	}

	public void iniciaPainelEsquerda() {
		painelEsquerda.setLayout(gridBagLayout);

		// teste
		botaoDadosPessoais.setPreferredSize(new Dimension(70, 60));
		botaoEmitirRelatorios.setPreferredSize(new Dimension(70, 60));
		botaoGerenciarInscricao.setPreferredSize(new Dimension(70, 60));

		
		
		
		// adicionar botoes coluna '1'
		adicionar(botaoGerenciarInscricao, 1, 0);
		adicionar(botaoDadosPessoais, 1, 1);
		adicionar(botaoEmitirRelatorios, 1, 2);

		// adicionar labels coluna '2'
		adicionar(labelGerenciarInscricao, 2, 0);
		adicionar(labelDadosPessoais, 2, 1);
		adicionar(labelEmitirRelatorios, 2, 2);

		painelEsquerda.setBorder(BorderFactory.createTitledBorder("Menu"));
	}

	public JButton getBotaoGerenciarInscricao() {
		return botaoGerenciarInscricao;
	}

	public JButton getBotaoDadosPessoais() {
		return botaoDadosPessoais;
	}

	public JButton getBotaoEmitirRelatorios() {
		return botaoEmitirRelatorios;
	}
}
